MOM vs. RPC: Communication Models for Distributed Applications
نویسنده
چکیده
A n important aspect of designing a distributed application is the communication model you use to connect its various components. Some middleware solutions, 1 such as Web services, 2 offer two of the most important communication paradigms: asynchronous messaging and remote procedure call (RPC). Message-oriented middleware (MOM) lets a ser-vice's consumers physically and temporally decou-ple from the service providers (see www. webmethods.com and http://www-306.ibm.com/ software/integration/wmq/). Communication between service providers and their consumers is asynchronous, and they don't need to be available at the same time because they communicate by sending and receiving messages from designated message queues. In contrast, RPC is a synchronous method of requesting remote service execution. Consumers must suspend service execution until they receive a reply from the provider. MOM and RPC have advantages and disadvantages. MOM solutions tend to be more robust to failures than RPC, and they allow service re-questers to continue to process while service providers work on their requests. However, programming MOM-based applications is more cumbersome because distribution isn't as transparent to the programmer as with RPCs. In this column, I provide a quantitative framework you can use to compare MOM-and RPC-based solutions. Consider an application program component (APC) that requests a service from a service provider (SP). We assume that the APC could potentially execute some asynchronous code after sending a request for service but before receiving a reply from the SP; we call this time to execute the asynchronous code t async. With RPCs, the APC must wait until the RPC returns a result before it can execute the asynchronous code. With MOM, the APC and the SP exchange messages through a message queue broker (MQB), as Figure 1 shows. After sending a service request to the SP, the APC can execute its asynchronous code. The SP is constantly retrieving messages addressed to it from the MQB that contain requests for service execution. After completing this execution , the SP posts a message to the MQB addressed to the requesting APC, which retrieves the reply. Let's look at how to compute a request's execution time, from the APC's viewpoint, for RPC-and MOM-based communication with an SP (see Figure 2). We give an RPC-based request's execution time, T RPC , as T RPC = t N + t s + t N + t async = 2 ´ t N + t s + t async , (1) where t N is …
منابع مشابه
Message-Oriented Middleware
As software systems continue to be distributed deployments over ever-increasing scales, transcending geographical, organizational, and traditional commercial boundaries, the demands placed upon their communication infrastructures will increase exponentially. Modern systems operate in complex environments with multiple programming languages, hardware platforms, operating systems and the requirem...
متن کاملSpecializing Object-Oriented RPC for Functionality and Performance
Remote procedure call (RPC) integrates distributed processing with conventional programming languages. However, traditional RPC lacks support for forms of communication such as datagrams, multicast, and streams that fall outside the strict request-response model. Emerging applications such as Distributed Interactive Simulation (DIS) and Internet video require scalable, reliable, and efficient c...
متن کاملNoWait-RPC: Extending ONC RPC to a Fully Compatible Message Passing System
Locally and functionally distributed applications realized on different system architectures demand a universal, portable and intuitive software utility for interprocess communication. Remote Procedure Calling (RPC) fulfills these requirements but suffers unnecessarily strict synchronization and the danger of deadlocks with complex client/server relations. Using message passing to avoid the inh...
متن کاملModules, Objects and Distributed Programming: Issues in RPC and Remote Object Invocation
Distributed programming can be greatly simplified by language support for distributed communication, such as that provided by remote procedure call (RPC) or remote object invocation. This paper examines design and implementation issues in these systems, and focuses on the influence of the communication system on a distributed program. To make the discussion concrete, we introduce a single appli...
متن کاملPerformance Evaluation and Comparison of Distributed Messaging Using Message Oriented Middleware
Message Oriented Middleware (MOM) is an enabling technology for modern event-driven applications that are typically based on publish/subscribe communication (Eugster, 2003). Enterprises typically contain hundreds of applications operating in environments with diverse databases and operating systems. Integration of these applications is required to coordinate the business process. Unfortunately,...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- IEEE Internet Computing
دوره 9 شماره
صفحات -
تاریخ انتشار 2005